aboutsummaryrefslogtreecommitdiffstats
path: root/pages/tracks/[slug].vue
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2025-01-17 13:42:21 +0000
committerLeonardo Bishop <me@leonardobishop.com>2025-01-17 13:42:21 +0000
commit70ebc77f843207a1d4b46c8d960dafbff37e7e2e (patch)
tree2d03f7a66b877bb6ffa2f92c0504ac90f26db55f /pages/tracks/[slug].vue
Initial commit
Diffstat (limited to 'pages/tracks/[slug].vue')
-rw-r--r--pages/tracks/[slug].vue45
1 files changed, 45 insertions, 0 deletions
diff --git a/pages/tracks/[slug].vue b/pages/tracks/[slug].vue
new file mode 100644
index 0000000..38bce61
--- /dev/null
+++ b/pages/tracks/[slug].vue
@@ -0,0 +1,45 @@
+<script setup lang="ts">
+import { useScheduleStore } from '~/stores/schedule';
+
+const route = useRoute();
+const scheduleStore = useScheduleStore();
+
+const track = scheduleStore.schedule?.tracks.find((track) => track.slug === route.params.slug);
+</script>
+
+<template>
+ <Panel v-if="track">
+ <h2 class="events-title">{{ track.name }}</h2>
+ <ul class="events-list">
+ <li
+ v-for="event in scheduleStore.eventsPerTrack[track.name]"
+ :key="event.id"
+ class="event-item"
+ >
+ <EventListing :event="event" />
+ </li>
+ </ul>
+ </Panel>
+</template>
+
+<style>
+.events-list {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ display: grid;
+}
+
+.event-item {
+ border-bottom: 1px solid var(--color-background-muted);
+}
+
+.events-title {
+ margin-bottom: 1rem;
+}
+
+.event-item:last-child {
+ border-bottom: none;
+}
+
+</style> \ No newline at end of file